# 24.输入3打印
# *
# ***
# *****

# class Input:
#     def __init__(self,num):
#         self.num = num
#
#     def get_graphics(self):
#         for i in range(self.num):
#             for j in range(2*i+1):
#                 print("*",end="")
#             print()
#
# num=Input(int(input("请输入一个数：")))
# num.get_graphics()


# 25.已知两个三位数abc和cba之和为1333（即abc+cba=1333）求 a、b、c
#
# count=100
# while count<1000:
#     a=count//100
#     b=count//10%10
#     c=count%10
#     if count+a+b*10+c*100==1333:
#         print(a,b,c,count)
#     count+=1
#


# 26.编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和.

# count=100
# while count<1000:
#     a=count//100
#     b=count//10%10
#     c=count%10
#     if count/11==a+b+c:
#         print(count)
#     count+=1


# 27.求1000以内最大的5个能同时被3和6整除的数。
# n=1000
# count=0
# while n>0:
#     if n%3==0 and n%6==0:
#         count+=1
#         if count==6:
#             break
#         print(n)
#     n-=1
#

# 28.输入一个数字，如果这个数字是质数则打印该数字，否则则打印该数字最大的因数


# num=int(input("请输入一个数字："))
# for i in range(num-1,1,-1):
#     if num%i==0:
#         print(i)
#         break
# else:
#     print(num)


# class Num:
#     def __init__(self,num):
#         self.num=num
#
#
#     def jud_num(self):
#         for i in range(2,self.num):
#             if self.num%i==0:
#                 return False
#             else:
#                 return True
#
#
#
#     def __str__(self):
#         return f"输入{self.num},是否质数{self.jud_num()},"
#
# n=Num(int(input("请输入一个数：")))
# print(n)

# 29.求1000以内所有质数的平均数
# sum=0
# count=0
#
# for i in range(2,1000):
#     for j in range(2,i):
#         if i%j==0:
#             break
#     else:
#         sum+=i
#         count+=1
#         print(i,end="\t")
# print()
# print(sum,count,sum/count)


# 32.输入10个数字， 打印输入数字最大值与最小值的差

# 随机生成10到20直接的整数
# import random
# num=[]
# for i in range(10):
#     n=random.randint(10,20)
#     num.append(n)
# max_n=None
# min_n=None
# for i in num:
#     if max_n==None:
#         max_n=i
#     elif max_n<i:
#         max_n=i
#
# for i in num:
#     if min_n == None:
#         min_n = i
#     elif min_n > i:
#         min_n = i
# print(num,max_n,min_n,max_n-min_n)


# 34.随机10个不同的位于10-30之间的数放入数组，总共随机了多少次
# import random
# ln=[]
# count=0
# while True:
#     n=random.randint(10,30)
#     count+=1
#     if n not in ln:
#         ln.append(n)
#         if len(ln)==10:
#             break
# print(count,ln)

# 35.一个五位数,若在它的后面写上一个7,得到一个六位数A,
# 若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数
# for i in range(10000,100000):
#     if (i*10+7)*5 == 7*100000+i:
#         print(i)
# print(714285/142857)


# 36.随机生成5-10之间的数字，直到所有数字之和大于100，计算随机的次数
# import random
#
# total = 0
# count = 0
# l_num = []
# while True:
#     num = random.randint(5, 10)
#     count += 1
#     total += num
#     l_num.append(num)
#     if total > 100:
#         print(total, count, l_num)
#         break


# 37.找出1000以内所有的完数（所有因子之和等于本身）

# for i in range(1,1001):
#     sum=0
#     for j in range(1,i):
#         if i%j==0:
#             sum+=j
#     if i==sum:
#         print(i)

# 38.找到1000以内相差为6的质数对（5,11）（7,13）...
# l=[]
# for i in range(1,1001):
#     for j in range(2,i):
#         if i%j==0:
#             break
#     else:
#         l.append(i)
# print(l)
# for e in l:
#     if e+6 in l:
#         print([e,e+6])


# 39.一直输入数字，直到数字之和为5的倍数，求输入数字的平均数

# import random
# count=0
# total=0
# ln=[]
# while True:
#     n = random.randint(10,20)  # n=input("请输入一个数字：")
#     count+=1
#     total+=n
#     ln.append(n)
#     if total%5==0:
#         print(ln)
#         print(count,total,total/count)
#         break

# 40.输入1 个正整数 n(n<=100)，计算并输出1＋1/2＋1/3＋……＋1/n 。

# import random
# total=0
# n= random.randint(1,100)  # n=input("请输入一个数字：")
# for i in range(1,n+1):
#     total+=1/i
#
# print(n,total)

# 41.输入两个数，求两个数的最大公约数，最小公倍数
#
# import random
#
#
# # n1 = random.randint(0,100)
# # n2 = random.randint(0,100)
#
# class Evaluation:
#     def __init__(self):
#         self.n1 = random.randint(1, 100)
#         self.n2 = random.randint(1, 100)
#
#     def get_min(self):
#         count0=self.n1 if self.n1>self.n2 else self.n2
#         while True:
#             if count0%self.n1==0 and count0%self.n2==0:
#                 return count0
#             count0+=1
#
#     def get_max(self):
#         count=self.n1 if self.n1<self.n2 else self.n2
#         while True:
#             if self.n1%count==0 and self.n2%count==0:
#                 return count
#             count-=1
#
#
#     def __str__(self):
#         return f'随机第一个数{self.n1},随机第二个数{self.n2},最大公因数{self.get_max()},最小公倍数{self.get_min()}'
#
#
# evaluation=Evaluation()
# evaluation.get_min()
# evaluation.get_max()
# print(evaluation)

# 42.已知四位数3025有一个特殊性质: 它的前两位数字30和后两位数字25的和是 55,
# 而   55的平方刚好等于该数(55*55=3025). 试编一程序打印所有具有这种性质的四位数.

# count = 1000
# while count<10000:
#     if (count//100+count%100)**2==count:
#         print(count)
#     count+=1

# 43.找到500到1000以内满足以下的质数对（前两个差值是第二个与第三个差值的一半）
# l=[]
# for i in range(500,1000):
#     for j in range(2,i):
#         if i%j==0:
#             break
#     else:
#         l.append(i)
# print(l)
# for e1 in l:
#     for e2 in l:
#         for e3 in l:
#             if e2-e1==1/2*(e3-e2) >0:
#                 print([e1,e2,e3])


# 44.将第一个字符串与第二个字符串进行拼接
# abcdefg  1234 拼接结果a4b3c2d1efg
# s1="abcdefg"
# s2="1234"
# ss1=''
# if len(s1)>len(s2):
#     n=len(s2)
#     for i in range(n):
#         ss1+=s1[i]+s2[-(i+1)]
#     for j in range(n,len(s1)):
#         ss1+=s1[j]
#
# if len(s1)<len(s2):
#     n=len(s1)
#     for i in range(n):
#         ss1+=s1[i]+s2[-(i+1)]
#     for j in range(n+1,len(s2)+1):
#         ss1+=s2[-j]
#
# print(ss1)

# 45.如何判断一个字符串是否为另一个字符串的子串（自己遍历，不使用index,find等方法）
# s1='123456'
# s2='123'
# s3=''
# count=0
# while count<len(s2):
#     if s2[count] in s1:
#         s3+=s2[count]
#     count+=1
#
# if s3==s2:
#     print(True)
# else:
#     print(False)

# 45.随机生成10个位于10-50之间的数字， 打印25以上与25以下平均数的差值
# import random
# total=0
# count=0
# total1=0
# count1=0
# l=[]
# for i in range(10):
#     n = random.randint(10,50)
#     l.append(n)
#     if n<25:
#         total+=n
#         count+=1
#
#     if n>25:
#         total1+=n
#         count1+=1
#
# print(total,count)
# print(f"25以下平均数{total/count}")
#
# print(total1,count1)
# print(f"25以上平均数{total1/count1}")
# print(l)

# 46.斐波那契数列指的是这样一个数列：1，1，2，3，5，8，13，21，34，55，89...
# 求第n个数是几
# n = int(input("请输入一个数"))
# l = [1, 1]
# while True:
#     l.append(l[-1] + l[-2])
#     if len(l) == n:
#         break
# print(l,len(l), l[n - 1])


# 47.计算二维列表中所有数字的平均数
# l=[
#     [1,2,3],
#     [4,5,6],
#     [7,8,9]
#     ]
# total = 0
# count = 0
# for i in range(len(l)):
#     for j in l[i]:
#         total += j
#         count += 1
#         print(j,end='\t')
# print()
# print(total,count,total/count)

# 48 编写一个程序，输入一个字符串，统计其中每个字符出现的次数

# # str0=input('请输入一个字符串')
# # str0='hello wrold'
# # d0={}
# # for i in str0:
# #     if i not in d0:
# #         d0[i]=1
# #     elif i in d0:
# #         d0[i]+=1
# # print(d0)
#
# str0 = input("请输入一个字符串：")
# d0 = {}
# for i in str0:
#     if i not in d0:
#         d0[i] = 1
#     elif i in d0:
#         d0[i] += 1
# print(d0)

# 49 编写一个程序，输入一个列表和一个整数 n，将该列表中的所有元素都循环右移 n 位，
# 并输出修改后的列表。
import random
l = [1,2,3,4,5,6,7,8]
l0 = []
n = random.randint(-10,10)
print(n)

for j in range(len(l)-n%len(l),len(l)):
    l0.append(l[j])

for i in range(len(l)-n%len(l)):
    l0.append(l[i])
print(l0)